package com.qf.mapper;

import com.qf.domain.SysAttendance;
import io.lettuce.core.dynamic.annotation.Param;
import org.apache.ibatis.annotations.Mapper;

import java.util.Date;
import java.util.List;

@Mapper
/**
 * 考勤Mapper接口
 */
public interface MyAttendanceMapper {
    /**
     * 普通用户：按日期范围查询个人考勤
     * @param userId 当前登录用户ID（后端自动获取，无需前端传）
     * @param startDate 开始日期（YYYY-MM-DD）
     * @param endDate 结束日期（YYYY-MM-DD）
     * @return 个人考勤列表
     */
    List<SysAttendance> selectMyAttendanceList(
            @Param("userId") Long userId,
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate
    );

    /**
     * 普通用户：查询当天是否已存在考勤记录
     * @param userId 当前登录用户ID
     * @param checkDate 打卡日期（当天）
     * @return 考勤记录（null表示无）
     */
    SysAttendance selectTodayAttendance(
            @Param("userId") Long userId,
            @Param("checkDate") Date checkDate
    );

    int insertOrUpdateAttendance(@Param("attendance") SysAttendance attendance);
}